home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / COMMUNIC / 1024.ZIP / GT-RENEW.C < prev    next >
C/C++ Source or Header  |  1987-10-24  |  2KB  |  56 lines

  1. /*
  2.     This program may be used to 'freshen' your GT POWER directory.  You
  3.     normally get only 150 uses of GT.COM, at which point your directory
  4.     becomes useless.  The aging process takes place only within GT.DIR,
  5.     so you may always copy a previously saved version of GT.DIR, but you
  6.     will then lose all changes since made to the directory.  By running
  7.     this program occasionally, you will restore youth to GT.DIR, and not
  8.     lose anything in the process.  GT-RENEW is small and fast enough so
  9.     that you may want to run it from a batch file each time you run GT.
  10. */
  11.  
  12. #include "fcntl.h"
  13.  
  14. #define BUFFER_LENGTH 133
  15. #define    TO_DOS_HAPPILY 0
  16. #define    TO_DOS_WITH_TAIL_TUCKED_BETWEEN_LEGS 1
  17.  
  18. main()
  19. {
  20. int     fh;
  21. char    *filename = "gt.dir";
  22. int     filemode = O_RDWR | O_RAW;
  23. char     buffer[ BUFFER_LENGTH ];
  24.  
  25.     printf("\n****  GT RE-NEW ( for GT POWER 13.xx ");
  26.     printf("and similar versions )  ****\n");
  27.  
  28.     fh = open( filename, filemode, 0 );
  29.     if ( fh < 0 )
  30.     {
  31.     printf("\n****  ERROR: Can't access '%s'  ****\n", filename );
  32.     exit( TO_DOS_WITH_TAIL_TUCKED_BETWEEN_LEGS );
  33.     }
  34.  
  35.     if ( read( fh, buffer, BUFFER_LENGTH ) < BUFFER_LENGTH )
  36.     {
  37.     printf("\n****  ERROR: '%s' has been truncated  ****\n", filename );
  38.     exit( TO_DOS_WITH_TAIL_TUCKED_BETWEEN_LEGS );
  39.     }
  40.  
  41.     buffer[ 001 ] = 0x93;
  42.     buffer[ 130 ] = 0x63;
  43.     buffer[ 132 ] = 0x6c;
  44.     lseek( fh, 0L, 0 );
  45.     if ( write( fh, buffer, BUFFER_LENGTH ) < BUFFER_LENGTH )
  46.     {
  47.     printf("\n****  ERROR: Can't write to '%s' properly  ****", filename );
  48.     exit( TO_DOS_WITH_TAIL_TUCKED_BETWEEN_LEGS );
  49.     }
  50.  
  51.     close( fh );
  52.     printf("         DONE\n");
  53.     exit( TO_DOS_HAPPILY );
  54.  
  55. }
  56.